//
//  DictioneyStudy.swift
//  Swift3.0_Study
//
//  Created by chengfeng on 2016/9/27.
//  Copyright © 2016年 zhaochengfeng. All rights reserved.
//

import Cocoa

class DictionaryStudy: NSObject {
    //字典: 值无序可重复,但每个值有唯一的键(Key)
    //定义: Dictionary<键类型, 值类型>, 或 [键类型: 值类型]
    //用字典字面量来创建字典, 键与值之间用冒号隔开.
    
    func start() -> Void {
        var a: Dictionary<String,String> = ["name" : "成峰","age" : "25"]
        var b: [String:String] = ["sex" : "男", "addr" : "北京"]
        
        //①计数: count, 空否: isEmpty
        //添加或更新: 字典变量[键] = 值
        a["age"] = "26"
        b["addr"] = "杭州"
        print("a = \(a), b = \(b)")
        
        //写入一个不存在的key值时，会自动创建一个新的key
        a["score"] = "24"
        print(a)
        
        //已存在的key值，如果value类型不对，编译器会不通过
//        a["age"] = 25
//        print(a)
        
        //③获取,依然可以用下标,取出的值是可选类型
        print(a["name"])
        
        //移除,用下标把值设为nil
        a["name"] = nil;
        print(a)
        
        //循环一个字典 for in, 因为键值对有2个元素, 用元组变量.
        for (key, value) in a {
            print(key,value)
        }
        for tuple in b {
            print(tuple)
        }
        
        //单独使用其中键或值,使用 keys 或 values (可使用for in)
        for key in a.values {
            print(key)
        }

    }
}
